using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SudokuHelper.Model.Values {
    public class CalculatedValue : UserValue {
        #region Constructors

        public CalculatedValue(byte? value) : base(value) {
        }

        #endregion

        #region Implementation of IValue

        public override object Accept(IValueVisitor valueVisitor, object arg) {
            return valueVisitor.Visit(this, null);
        }

        public override void Dispatch(IValueRelation other, ValueRelationDispatcher dispatcher) {
            dispatcher.Dispatch(this, other);
        }

        public override void Dispatch(UserValue userValue, ValueRelationDispatcher dispatcher) {
            dispatcher.Perform(userValue, this);
        }

        public override void Dispatch(CalculatedValue calculatedValue, ValueRelationDispatcher dispatcher) {
            dispatcher.Perform(this, calculatedValue);
        }

        public override void Dispatch(ValueRange range, ValueRelationDispatcher dispatcher) {
            dispatcher.Perform(this, range);
        }

        #endregion
    }
}